package com.xcf.weekly_2020_200;

public class ArrayWinner {

    /**
     * 给你一个由 不同 整数组成的整数数组 arr 和一个整数 k 。
     * <p>
     * 每回合游戏都在数组的前两个元素（即 arr[0] 和 arr[1] ）之间进行。比较 arr[0] 与 arr[1] 的大小，
     * 较大的整数将会取得这一回合的胜利并保留在位置 0 ，较小的整数移至数组的末尾。当一个整数赢得 k 个连续回合时，游戏结束，
     * 该整数就是比赛的 赢家 。
     * <p>
     * 返回赢得比赛的整数。
     * <p>
     * 题目数据 保证 游戏存在赢家。
     */
    public int getWinner(int[] arr, int k) {
        int winner = arr[0];
        int loop = 0;
        int[] temp = new int[arr.length];
        for (int i = 1; i < arr.length; i++) {
            if (winner > arr[i]) {
                loop++;
                temp[i] = arr[i];
            } else {
                temp[i] = winner;
                winner = arr[i];
                loop = 1;
            }
            if (loop >= k) {
                return winner;
            }
            if (i == arr.length - 1){
                arr = temp;
                i = 1;
                temp = new int[arr.length];
            }
        }
        return 0;
    }

    public static void main(String[] args) {
        ArrayWinner winner = new ArrayWinner();
        int winner1 = winner.getWinner(new int[]{1,9,8,2,3,7,6,4,5}, 7);
        System.out.println("winner1 = " + winner1);
    }
}
